/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.session.classes;


import br.com.projeto.entity.Pessoa;
import br.com.projeto.persistence.exception.JPADeleteException;
import br.com.projeto.persistence.exception.JPAInsertException;
import br.com.projeto.persistence.exception.JPAQueryException;
import br.com.projeto.persistence.exception.JPAUpdateException;
import br.com.projeto.persistence.jpa.DaoGenericImpl;


import java.util.List;

/**
 *
 * @author WESLEY
 */
public class PessoaSessionImpl extends DaoGenericImpl<Pessoa> {

        public boolean cadPessoa(Pessoa pessoa) throws JPAInsertException {
                if (this.validarClienteJuridico(pessoa)) {
                        this.save(pessoa);
                        return true;
                } else {
                        throw new JPAInsertException("impossivel adicionar esta pessoa");
                }
        }

        

        public Pessoa buscaPessoaPorCpf(String cpf) throws Exception {
               Pessoa pessoa = null;
                if (cpf != null && !cpf.trim().equals("")) {
                        try {
                               pessoa = (Pessoa) this.getObject(cpf, "getPessoaPorCpf");
                               return pessoa;
                        } catch (Exception ex) {
                                throw new Exception(ex.getMessage());
                        }
                }else return null;
                

        }

        public boolean deletarPessoaPorCpf(String cpf) throws JPADeleteException {
                Pessoa aux = null;
                if (cpf==null)return false;
                aux  = (Pessoa) this.getObject(cpf,"namedqUERY");
                if((aux.getCpf().equals(cpf))&& aux != null){
                    this.delete(aux);
                    return true;
                }else return false;
                    
                

        }

        public List<Pessoa> listAllPessoas() throws JPAQueryException {
                List<Pessoa> pessoas = null;
                try {
                        pessoas = this.listObjects("listAllPessoas");
                        return pessoas;
                } catch (JPAQueryException ex) {
                        throw new JPAQueryException(ex.getMessage());
                }
                

        }

        private boolean validarClienteJuridico(Pessoa pessoa) {
                if (pessoa != null) {
                        return true;
                } else {
                        return false;
                }

        }
}
